﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
// 匿名函数
//
//
// even事件    本身就是一种委托    只是该委托 只允许作为类的成员变量
//           且仅在类的内部使用才可以，外部不可以直接调用

//            外部只能+=增加订阅的方法 赋值方法
//         
//
//
//多播委托
//        委托属于引用类型，引用类型的默认值为null,直接使用会报空异常，
//         使用前要判断是否为空。
//

public class MyEventClas
{
    public event Action action1;
    public  Action action2;

    public void Send()
    {
        if (action1!=null)
        {
            action1();
        }
    }
}
public class BoardCast : MonoBehaviour
{
    event Action action;
    // Start is called before the first frame update
    void Start()
    {
        //Action action = Show1;


        //匿名函数
        //Action action = delegate()
        //{
        //    Debug.Log("匿名函数被执行");
        //};

        //多播委托
        //Action action= Show1;
        //action += Show2;
        //action -= Show2;
        //action -= Show1;
        //if(action!=null)
        //action();

        action = Show1;
        action();

        MyEventClas myEventClas = new MyEventClas();
        myEventClas.action1 += Show1;
        myEventClas.action2 = Show2;
        myEventClas.Send();
    }
    private void Show1()
    {
        Debug.Log("Show1");
    }
    private void Show2()
    {
        Debug.Log("Show2");
    }
    // Update is called once per frame
    void Update()
    {
        
    }
}
